#include "lua.h"
#include "lauxlib.h"
#include "cm_sim.h"

// Lua: imsi_string = sim.get_imsi()
static int l_sim_get_imsi(lua_State *L)
{
    char imsi[16] = {0};
    if (cm_sim_get_imsi(imsi) == 0)
    {
        lua_pushstring(L, imsi);
    }
    else
    {
        lua_pushnil(L);
    }
    return 1;
}

// Lua: iccid_string = sim.get_iccid()
static int l_sim_get_iccid(lua_State *L)
{
    char iccid[21] = {0};
    if (cm_sim_get_iccid(iccid) == 0)
    {
        lua_pushstring(L, iccid);
    }
    else
    {
        lua_pushnil(L);
    }
    return 1;
}

static const luaL_Reg sim_lib[] = {
    {"get_imsi", l_sim_get_imsi},
    {"get_iccid", l_sim_get_iccid},
    {NULL, NULL}
};

int luaopen_sim(lua_State *L)
{
    luaL_newlib(L, sim_lib);
    return 1;
}
